/** *****************  JAVA头文件说明  ****************
 * file name  :  ConfigController.java
 * owner      :  xu
 * copyright  :  UMPAY
 * description:  
 * modified   :  2017-4-6
 * *************************************************/ 

package com.busi.controller.config;

import java.sql.Timestamp;

import com.busi.model.Config;
import com.busi.util.DateUtil;
import com.busi.util.GsonUtils;
import com.busi.util.HttpUtils;
import com.busi.util.PropertyUtil;
import com.busi.util.StringUtil;
import com.google.gson.Gson;
import com.zcurd.controller.BaseController;


/** ******************  类说明  *********************
 * class       :  ConfigController
 * @author     :  xuhuafeng
 * @version    :  1.0  
 * description :  配置项管理
 * ************************************************/

public class ConfigController extends BaseController {
	
	public void listPage(){
		render("list.html");
	}
	
	/**
	 * ********************************************
	 * method name   : updatePage 
	 * description   : 修改配置项页面
	 * @return       : void
	 * @param        : 
	 * modified      : hejinyun@umpay.com ,  2016-11-7  上午10:15:01
	 * @see          : 
	 * *******************************************
	 */
	public void updatePage(){
		String id = super.getPara("id");
		LOG.info("#updatePage()请求参数:"+id);
		String domain = PropertyUtil.getStrValue("platform.domain", "");
		String url = domain+"/emall/admin/config/query/"+id;
		String jsonString = HttpUtils.doGet(url, null, 3, 5, "utf-8");
		LOG.debug("#updatePage() 配置项信息:"+jsonString);
		Gson gson = GsonUtils.buildGsonObject();
		Config config = gson.fromJson(jsonString, Config.class);
		setAttr("model", config);
		render("update.html");
	}
	
	/**
	 * ********************************************
	 * method name   : addPage 
	 * description   : 增加配置项信息页面
	 * @return       : void
	 * @param        : 
	 * modified      : hejinyun@umpay.com ,  2016-11-7  上午10:15:13
	 * @see          : 
	 * *******************************************
	 */
	public void addPage(){
		render("add.html");
	}
	
	/**
	 * ********************************************
	 * method name   : listData 
	 * description   : 配置项信息查询列表
	 * @return       : void
	 * @param        : 
	 * modified      : hejinyun@umpay.com ,  2016-11-7  上午10:24:23
	 * @see          : 
	 * *******************************************
	 */
	public void listData(){
		LOG.info("#listData() 查询配置项列表");
		Config config = super.getBean(Config.class, "");
		Gson gson = new Gson();
		String body = gson.toJson(config);
		LOG.info("#listData()请求参数:"+body);
		String domain = PropertyUtil.getStrValue("platform.domain", "");
		String url = domain+"/emall/admin/config/listbypage";
		String[][] headers = {{"Content-Type", "application/json"}};
		String jsonString = HttpUtils.doPost(url, body, headers, 3, 5, "utf-8");
		LOG.debug("#listData() 配置项列表:"+jsonString);
		
		if (StringUtil.isBlank(jsonString)){
			renderJson();
		} else {
			renderJson(jsonString);
		}
		
	}
	
	/**
	 * ********************************************
	 * method name   : add 
	 * description   : 增加配置项信息
	 * @return       : void
	 * @param        : 
	 * modified      : hejinyun@umpay.com ,  2016-11-7  上午10:15:26
	 * @see          : 
	 * *******************************************
	 */
	public void add(){
		Timestamp currentTime = DateUtil.getSysDateTimestamp();
		Config config = getBean(Config.class, "config");
		config.setModtime(currentTime);
		config.setIntime(currentTime);
		String body = gson.toJson(config);
		LOG.info("#add() 增加配置项请求报文:"+body);
		String domain = PropertyUtil.getStrValue("platform.domain", "");
		String url = domain+"/emall/admin/config/add";
		String[][] headers = {{"Content-Type", "application/json"}};
		String jsonString = HttpUtils.doPost(url, body, headers, 3, 5, "utf-8");
		LOG.info("#add() result===>"+jsonString);
		if ("exists".equals(jsonString)){
			renderFailed("当前配置项已存在！");
			return ;
		}
		if ("success".equals(jsonString)){
			renderSuccess();
			return;
		}
		renderFailed("配置项信息添加失败！");
	}

	/**
	 * ********************************************
	 * method name   : update 
	 * description   : 修改配置项信息
	 * @return       : void
	 * @param        : 
	 * modified      : hejinyun@umpay.com ,  2016-11-7  上午10:15:39
	 * @see          : 
	 * *******************************************
	 */
	public void update(){
		Timestamp currentTime = DateUtil.getSysDateTimestamp();
		Config config = getBean(Config.class, "config");
		config.setModtime(currentTime);
		String body = gson.toJson(config);
		LOG.info("#update() 修改配置项请求报文:"+body);
		String domain = PropertyUtil.getStrValue("platform.domain", "");
		String url = domain+"/emall/admin/config/update";
		String[][] headers = {{"Content-Type", "application/json"}};
		String jsonString = HttpUtils.doPost(url, body, headers, 3, 5, "utf-8");
		LOG.info("#update() result===>"+jsonString);
		if ("exists".equals(jsonString)){
			renderFailed("当前配置项已存在！");
			return;
		}
		if ("success".equals(jsonString)){
			renderSuccess();
			return;
		}
		renderFailed("配置项信息修改失败！");
	}

}
